Page({
  data: {
    userInfo: {
      avatar: '/images/avatar.png',
      name: '爱学习的西西',
      location: '北京 · 六年级',
      coins: 23000,
      studyDays: 65
    },
    menuItems: [
      {
        id: 'footprint',
        icon: '/images/footprint.svg',
        title: '我的足迹',
        color: '#4285f4'
      },
      {
        id: 'download',
        icon: '/images/download.svg',
        title: '我的下载',
        color: '#ea4335'
      },
      {
        id: 'collection',
        icon: '/images/collection.svg',
        title: '我的收藏',
        color: '#fbbc04'
      },
      {
        id: 'questions',
        icon: '/images/questions.svg',
        title: '我的错题',
        color: '#9c27b0'
      },
      {
        id: 'message',
        icon: '/images/message-center.svg',
        title: '消息中心',
        color: '#00bcd4',
        badge: 1
      },
      {
        id: 'help',
        icon: '/images/help.svg',
        title: '帮助与反馈',
        color: '#ff9800'
      },
      {
        id: 'face-recognition',
        icon: '/images/ai.svg',
        title: '人脸识别',
        color: '#9c27b0'
      },
      {
        id: 'settings',
        icon: '/images/settings.svg',
        title: '账号设置',
        color: '#ff5722'
      },
      {
        id: 'logout',
        icon: '/images/error.svg',
        title: '退出登录',
        color: '#f44336'
      }
    ]
  },

  onLoad: function (options) {
    console.log('个人中心页面加载');
  },

  onShow: function () {
    console.log('个人中心页面显示');
  },

  // 点击菜单项
  onMenuTap: function(e) {
    const itemId = e.currentTarget.dataset.id;
    console.log('点击菜单项:', itemId);
    
    switch(itemId) {
      case 'message':
        wx.navigateTo({
          url: '/pages/message/message'
        });
        break;
      case 'footprint':
        wx.navigateTo({
          url: '/pages/footprint/footprint'
        });
        break;
      case 'download':
        wx.showToast({
          title: '功能开发中',
          icon: 'none'
        });
        break;
      case 'collection':
        wx.navigateTo({
          url: '/pages/collection/collection'
        });
        break;
      case 'questions':
        wx.navigateTo({
          url: '/pages/wrong-questions/wrong-questions'
        });
        break;
      case 'help':
        wx.navigateTo({
          url: '/pages/help-feedback/help-feedback'
        });
        break;
      case 'face-recognition':
        wx.navigateTo({
          url: '/pages/face-recognition/face-recognition'
        });
        break;
      case 'settings':
        wx.navigateTo({
          url: '/pages/settings/settings'
        });
        break;
      case 'logout':
        this.showLogoutConfirm();
        break;
      default:
        console.log('未知菜单项');
    }
  },

  // 编辑个人信息
  onEditProfile: function() {
    wx.showToast({
      title: '编辑功能开发中',
      icon: 'none'
    });
  },

  // 显示退出登录确认对话框
  showLogoutConfirm: function() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      confirmText: '退出',
      cancelText: '取消',
      confirmColor: '#f44336',
      success: (res) => {
        if (res.confirm) {
          this.handleLogout();
        }
      }
    });
  },

  // 处理退出登录
  handleLogout: function() {
    console.log('开始执行退出登录...');
    try {
      // 显示加载提示
      wx.showLoading({
        title: '退出中...',
        mask: true
      });

      // 清理本地存储的用户数据
      console.log('清理本地存储数据...');
      wx.removeStorageSync('userInfo');
      wx.removeStorageSync('token');
      wx.removeStorageSync('openid');
      wx.removeStorageSync('sessionKey');
      wx.removeStorageSync('usedCodes');
      wx.removeStorageSync('lastLoginTime');
      wx.removeStorageSync('isLoggedIn');

      // 清理全局数据
      console.log('清理全局数据...');
      const app = getApp();
      if (app.globalData) {
        app.globalData.userInfo = null;
        app.globalData.token = null;
        app.globalData.openid = null;
        app.globalData.isLoggedIn = false;
      }

      // 隐藏加载提示
      wx.hideLoading();

      // 显示退出成功提示（缩短显示时间）
      wx.showToast({
        title: '退出成功',
        icon: 'success',
        duration: 800
      });

      console.log('准备跳转到登录页面...');
      
      // 使用setTimeout确保toast显示完成后再跳转，避免reLaunch超时
      setTimeout(() => {
        this.performLogoutRedirect();
      }, 500);

    } catch (error) {
      console.error('退出登录失败:', error);
      wx.hideLoading();
      wx.showToast({
        title: '退出失败，请重试',
        icon: 'none',
        duration: 2000
      });
    }
  },

  // 执行退出登录后的页面跳转
  performLogoutRedirect: function() {
    console.log('执行页面跳转...');
    
    // 方法1: 尝试使用reLaunch（推荐方式）
    wx.reLaunch({
      url: '/pages/login/login',
      success: (res) => {
        console.log('reLaunch跳转成功:', res);
      },
      fail: (error) => {
        console.error('reLaunch跳转失败:', error);
        
        // 方法2: 如果reLaunch失败，尝试使用redirectTo
        setTimeout(() => {
          wx.redirectTo({
            url: '/pages/login/login',
            success: (res) => {
              console.log('redirectTo跳转成功:', res);
            },
            fail: (redirectError) => {
              console.error('redirectTo跳转失败:', redirectError);
              
              // 方法3: 如果redirectTo也失败，尝试使用navigateTo
              setTimeout(() => {
                wx.navigateTo({
                  url: '/pages/login/login',
                  success: (res) => {
                    console.log('navigateTo跳转成功:', res);
                  },
                  fail: (navError) => {
                    console.error('所有跳转方法都失败了:', navError);
                    
                    // 最后的备用方案：显示错误提示并建议手动操作
                    wx.showModal({
                      title: '跳转失败',
                      content: '页面跳转失败，请手动返回登录页面',
                      showCancel: false,
                      confirmText: '知道了'
                    });
                  }
                });
              }, 100);
            }
          });
        }, 100);
      }
    });
  },

  // 全局导航栏导航事件
  onNavigate: function(e) {
    const page = e.detail.page;
    console.log('导航到页面:', page);
    
    // 这里可以添加页面特定的导航逻辑
    // 组件内部已经处理了页面跳转
  },

  // 底部导航栏点击事件
  onTabTap: function(e) {
    const index = parseInt(e.currentTarget.dataset.index);
    console.log('点击底部导航:', index);
    
    switch(index) {
      case 0:
        // 首页
        if (typeof wx !== 'undefined' && wx.navigateTo) {
          wx.navigateTo({
            url: '/pages/index/index'
          });
        } else {
          window.location.href = '/pages/index/index.wxml';
        }
        break;
      case 1:
        // 消息页面
        if (typeof wx !== 'undefined' && wx.navigateTo) {
          wx.navigateTo({
            url: '/pages/message/message'
          });
        } else {
          window.location.href = '/pages/message/message.wxml';
        }
        break;
      case 2:
        // 排行榜页面
        if (typeof wx !== 'undefined' && wx.navigateTo) {
          wx.navigateTo({
            url: '/pages/ranking/ranking'
          });
        } else {
          window.location.href = '/pages/ranking/ranking.wxml';
        }
        break;
      case 3:
        // 个人中心页面，不需要跳转
        break;
      default:
        console.log('未知导航项');
    }
  }
});